import re

from flask import Blueprint, request, jsonify, render_template
import pandas as pd
import requests
import json
import requests
import openpyxl
from openpyxl import Workbook

from methods.fhxhOs import upload_excel
from utils.fhxhEnum import yxfl_arr, kb_arr, zz_arr, paper_arr
from utils.tools import dcc_book_detail, compare_labels

bp = Blueprint("fhxhOs", __name__, url_prefix="/fhxhOs")


@bp.route('/test', methods=['get'])
def test():
    return "test"


# 返回自定义的登录页面
@bp.route('/loginPage', methods=['get'])
def loginPage():
    return render_template('fenghuangxinhua.html')


# 检测token是否过期
@bp.route('/checkToken', methods=['get'])
def checkToken():
    phpsessid = request.args.get('token')
    response = requests.post('http://b2bjkfw.ppm.cn/api/MainPage/getTodoList',
                             headers={'Authorization': f'Bearer {phpsessid}'}, json={
            'Gysid': '213',
            'isProc': 1,
        }, verify=False)
    response_json = json.loads(response.text)
    if response_json['Code'] == 200:
        return {'code': 200, 'message': '凤凰新华登录状态未过期'}
    else:
        return {'code': 0, 'message': response_json['Msg']}


@bp.route('/publishProduct', methods=['post'])
def publishProduct():
    data = request.get_json()
    dcc_token = data.get('dcc_token')
    serial_no = data.get('serial_no')
    session_id = data.get('session_id')
    userId = data.get('userId')
    if dcc_token is None:
        return {'code': 0, 'message': '请传入dcc_token'}
    if serial_no is None:
        return {'code': 0, 'message': '请传入serial_no'}
    book_details_json = dcc_book_detail(serial_no, dcc_token)
    if book_details_json['code'] != 200:
        return {'code': 0, 'message': book_details_json['message']}
    book_details_json = book_details_json['data']
    a = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
    # a = [
    #     'G613.6', 'SE05', '少儿类', '9787573147295', '吉林出版集团股份有限公司', '幼儿创意美术画册1', '1', '18.8', '55',
    #     '2024-04', '范丽', '册', '否',
    #     '线上线下通用',
    #     '《幼儿创意美术画册1》包含了点连线、掌印画、棉签点画、添画、创意画、指印画、纸团印画7种风格主题，能够激发幼儿的绘画兴趣，发挥幼儿的想象力，锻炼幼儿的动手能力，书中内容按照从简到难的顺序编排，有小蜜蜂采蜜、茂盛的树、爸爸的胡子、蒲公英、仙人掌、凶猛的鲨鱼、七星瓢虫、小鸟飞飞、点点变魔术、毛线球、蝌蚪宝宝、斑点豹、狮子的头发、公主裙、火龙果、斑点狗16幅主题。书中内容编排细致，让孩子先描线，然后根据彩色例图涂色，既能增强孩子手指的灵活性，还能培养他们对色彩的感知和运用能力，充分发挥孩子的想象力。',
    #     '学前教育、幼儿教育', '', '', '8', '4', '01', 'OFS', '1', '', '儿童', '5000', '田野', '', '', '10010005', '', ''
    # ]
    a[0] = book_details_json['bookInfoAppendObj']['classificationNumber'] or ''  # CIP分类（必填项）
    a[1] = compare_labels(book_details_json['bookInfoAppendObj']['chinaBookCategory'], yxfl_arr)  # 营销分类（必填项）
    a[2] = '少儿类'  # 合同分类（必填项）
    a[3] = book_details_json['isbn'] or ''  # ISBN（必填项）
    a[4] = book_details_json['publishName'] or ''  # 出版社（必填项）
    a[5] = book_details_json['bookName'] or ''  # 书名（必填项）
    a[6] = book_details_json['versionNo'] or ''  # 版次（必填项）
    a[7] = book_details_json['priceFixed'] or ''  # 定价（必填项）
    a[8] = '55'  # 进折（必填项）
    a[9] = book_details_json['publishDate'] or ''  # 出版年月（必填项）
    a[10] = book_details_json['authorName'] or ''  # 作者（必填项）
    a[11] = '册'  # 计量单位（必填项）
    a[12] = '否'  # 是否有电子书（必填项，请选择）
    a[13] = '线上线下通用'  # 线上线下权限（必填项，请选择）
    a[14] = book_details_json['bookInfoAdditionObj']['briefIntroduction'] or ''  # 内容简介（必填项）
    a[15] = book_details_json['wordsRecommend'] or ''  # 主题词（必填项）
    # a[16] = book_details_json['bookInfoAdditionObj']['seriesName'] or ''  # 系列名称（必填项）
    a[16] = ''  # 供应商商品ID
    a[17] = ''  # 丛书名
    a[18] = compare_labels(book_details_json['bookSize'], kb_arr)  # 开本
    a[19] = book_details_json['printPage'] or ''  # 印张
    a[20] = compare_labels(book_details_json['binding'], zz_arr)  # 装帧
    a[21] = compare_labels(book_details_json['userPaper'], paper_arr)  # 纸张
    a[22] = book_details_json['printNo'] or ''  # 印次
    a[23] = ''  # 印刷时间
    a[24] = book_details_json['readerObject'] or ''  # 适读对象
    a[25] = book_details_json['printNumber'] or ''  # 首印数
    a[26] = book_details_json['editorResponsible'] or ''  # 编者
    a[27] = ''  # 译者
    a[28] = ''  # 绘者
    a[29] = ''  # 财务分类
    a[30] = ''  # 封面图片名称
    a[31] = ''  # 商品图片名称
    if not a[0]:
        return {'code': 0, 'message': '请传入CIP分类'}
    if not a[1]:
        return {'code': 0, 'message': '请传入营销分类'}
    if not a[3]:
        return {'code': 0, 'message': '请传入ISBN'}
    if not a[4]:
        return {'code': 0, 'message': '请传入出版社'}
    if not a[5]:
        return {'code': 0, 'message': '请传入书名'}
    if not a[6]:
        return {'code': 0, 'message': '请传入版次'}
    if not a[7]:
        return {'code': 0, 'message': '请传入定价'}
    if not a[9]:
        return {'code': 0, 'message': '请传入出版年月'}
    if not a[10]:
        return {'code': 0, 'message': '请传入作者'}
    if not a[14]:
        return {'code': 0, 'message': '请传入内容简介'}
    if not a[15]:
        return {'code': 0, 'message': '请传入主题词'}
    return upload_excel(session_id, userId, a)
